﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.Mvc;

namespace Pulog.Models
{
    public interface IPostRepository
    {
        #region Posts
        Post GetPostBySlug(string slug);
        Post GetPostById(int id);
        PagedList<Post> GetPostList(int? page);
        PagedList<Post> GetRecentPostList();
        //PagedList<Post> GetPostList(int pageIndex, int pageSize);
        //PagedList<Post> GetPostList(int? year, int? month, int? day, int pageIndex, int pageSize);

        void InsertPost(Post post);
        void DeletePost(Post post);

        void AddComment(Comment comment);

        //List<Tag> GetAllTags();
        //Tag GetTagByID(int id);
        //List<int> AddTags(string[] tags);
        //void RemoveTagsFromPost(Post post);
        //void DeleteTags(Tag tag);


        PagedList<Comment> GetRecentComments();
        List<Category> GetCategories();

        PagedList<Post> SearchPosts(string searchTerm, string searchMode, int? pageIndex);

        #endregion

        #region Settings
        //void SaveSetting(Setting s);
        //Setting GetSetting(string settingKey);
        #endregion
    }
}